#include <iostream>
#include <memory> //跟智能指针有关的头文件
using namespace std;

struct student
{
	string name;
	int age;
};

int main()
{
	//例子1：
	auto_ptr<int> a1(new int);
	
	//使用堆空间
	//错误：auto_ptr没有重载[]
	//a1[0]=15;
	//a1[9]=69;
	//错误：auto_ptr没有重载+
	//*(a1+0)=15;
	//*(a1+1)=45;
	
	//正确：auto_ptr重载了解引用
	//*a1=45;
	//cout<<"刚才你存放的数据: "<<*a1<<endl;
	
	//例子2：
	auto_ptr<struct student> a2(new struct student);
	a2->name="张三";
	a2->age=18;
	cout<<"刚才你存放的数据: "<<a2->name<<"  "<<a2->age<<endl;
	cout<<"刚才你存放的数据: "<<(*a2).name<<"  "<<(*a2).age<<endl;
}